As is known, non-volatile memories are becoming increasingly important in modern-day microelectronics, both as separate components and as components forming part of more complex devices; in this context, flash memories play a leading role, which is expected to increase significantly in the future.
Flash memories (as well as EPROMs) use the technique of hot electron injection for programming of the cells. As is known, programming presents two problems which are particularly critical in the case of multilevel programming used to store more than one bit for each cell: a) accurate control of the programmed threshold voltages; and b) control and limitation of the drain current flowing in the cell during programming.
The second problem, in particular, directly affects the possibility of operating in parallel on a large number of cells, which is of crucial importance for the operation of "soft-writing" erased flash cells. In general, however, this control function is important for achieving an increase in the performance during the storage of information.
In general, limitation of the cell current represents only one aspect of the more complex problem of controlling the current since, in order to optimize writing, the drain current should theoretically remain constant during the entire operation, so as to avoid high initial current peaks, followed by lower currents, which result in inefficient programming.
On the other hand, the problem of accurately controlling the programmed threshold voltage is important for digital memories and is absolutely crucial for multilevel storage, in view of the limited margins which separate the various levels within the available threshold window.
At present, in order to control the threshold after a programming stage, a verify operation consisting of reading the programmed cell is carried out. This method, however, involves a long and complicated procedure as well as a considerable use of space; consequently, the possibility of controlling in an accurate and reliable manner the threshold voltage of the cell during programming would be highly desirable.
The conventional writing procedure used for the present generation of flash memories (and EPROMs) uses rectangular pulses for the control gate and drain voltages (V.sub.cg and V.sub.d, respectively); consequently, programming is characterized by high drain currents, in particular at the start of the programming pulse, when the overdrive voltage (i.e., the difference between the control gate voltage and the threshold voltage) is high.
Some solutions have therefore been proposed in order to limit the drain current and/or control the overdrive current, but none of them achieves the ideal result of programming the cell with a constant current.